package com.gengzp.system.service;

import com.gengzp.common.model.pagination.resp.PaginationResponse;
import com.gengzp.common.model.user.req.CreateSysUserReq;
import com.gengzp.common.model.user.req.EditSysUserPasswordReq;
import com.gengzp.common.model.user.req.EditSysUserReq;
import com.gengzp.common.model.user.req.PageSysUserReq;
import com.gengzp.common.model.user.resp.PageUserResp;
import com.gengzp.common.model.user.resp.SearchSysUserResp;

/**
 * @ClassName SysUserService
 * @Description 系统用户管理模块服务层接口
 * @Author gengzp
 * @Date 2025/9/19 13:37
 */
public interface SysUserService {

    /**
     * 新增系统用户
     *
     * @param req 添加系统用户请求实体
     */
    void createSysUser(CreateSysUserReq req);

    /**
     * 编辑系统用户
     *
     * @param req 编辑系统用户请求实体
     */
    void editSysUserById(EditSysUserReq req);

    /**
     * 修改系统用户密码
     *
     * @param req 修改系统用户密码请求实体
     */
    void editSysUserPasswordById(EditSysUserPasswordReq req);

    /**
     * 根据id删除系统用户
     *
     * @param userId 用户id
     */
    void removeSysUserById(Long userId);

    /**
     * 根据id查询系统用户详情信息
     *
     * @param userId 系统用户id
     * @return 系统用户详情信息
     */
    SearchSysUserResp searchSysUserById(Long userId);

    /**
     * 分页查询系统角色
     *
     * @param req 分页查询系统用户请求实体
     * @return 分页查询系统用户结果
     */
    PaginationResponse<PageUserResp> pageQuerySysUser(PageSysUserReq req);

}
